OAuth 2.0 の認可許可 (authorization grant)
認可許可 (authorization grant) は、リソース所有者の認可を表す資格情報 (credential) RFC 6749 では 4 つの許可種別 (grant type) が定義されている 4 つの許可種別の詳細
認可コード (authorization code)
認可コードは、クライアントとリソース所有者の間の仲介者として認可サーバーを使用することで取得される
次の流れ
1. クライアントは、リソース所有者に直接認可を要求する代わりに、リソース所有者を認可サーバーに誘導する
2. 認可サーバーは、リソース所有者を認可コードとともにクライアントに誘導する
リソース所有者を認可コードとともにクライアントに誘導する前に、認可サーバーはリソース所有者を認証して認可を取得 リソース所有者は認可サーバーでのみ認証するため、リソース所有者の資格情報がクライアントに共有されることはない
暗黙的 (implicit)
暗黙的許可 (implicit grant) は簡素化された認可コードフロー
JavaScript 等でブラウザに実装されたクライアント向けに最適化されている
暗黙的許可では、クライアントに認可コードを発行する代わりに、クライアントにアクセストークンが直接発行される
認可コードのような中間資格情報は発行されない
暗黙的許可のフロー中でアクセス トークンを発行する場合、認可サーバーはクライアントを認証しない
リソース所有者のパスワード認証情報 (resource owner password credentials)
リソース所有者のパスワード認証情報 (ユーザー名とパスワード) は、アクセストークンを取得するための認可許可として直接使用できる
リソース所有者とクライアントの間に高い信頼関係がある場合 (クライアントがデバイスのオペレーティング システムの一部である場合や、高度な権限を持つアプリケーションである場合など) で、他の承認付与タイプ (承認コードなど) が利用できない場合にのみ使用すること
クライアント資格情報 (client credentials)
クライアント資格情報 (またはクライアント認証 (client authentication) の他の形態) は、認可範囲がクライアントの制御下にある保護されたリソース、または認可サーバーと事前に取り決められた保護されたリソースに制限されている場合に、認可許可として使用できる
クライアント資格情報は、通常、クライアントが自分自身のために行動している場合 (クライアントはリソース所有者でもある)、または認可サーバーと事前に取り決められた認可に基づいて保護されたリソースへのアクセスを要求している場合に、認可許可として使用される
参考文献